{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from pymongo import MongoClient\n",
    "from pandas.io.json import json_normalize\n",
    "\n",
    "plt.style.use('ggplot')\n",
    "from pylab import mpl\n",
    "mpl.rcParams['font.sans-serif'] = ['SimHei']  #解决seaborn中文字体显示问题\n",
    "plt.rc('figure', figsize=(10, 10))  #把plt默认的图片size调大一点\n",
    "plt.rcParams[\"figure.dpi\"] =mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "conn = MongoClient(host='127.0.0.1', port=27017)  # 实例化MongoClient\n",
    "db = conn.get_database('Github996')  # 连接到Github996数据库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "users = db.get_collection('users') \n",
    "data = users.find()  # 查询这个集合下的所有记录\n",
    "user_data = json_normalize([record for record in data])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "issues = db.get_collection('issues') \n",
    "data = issues.find()  # 查询这个集合下的所有记录\n",
    "issues_data = json_normalize([record for record in data])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 39987 entries, 0 to 39986\n",
      "Data columns (total 32 columns):\n",
      "_id                    39987 non-null object\n",
      "avatar_url             39987 non-null object\n",
      "bio                    10192 non-null object\n",
      "blog                   39987 non-null object\n",
      "company                5503 non-null object\n",
      "created_at             39987 non-null object\n",
      "email                  12729 non-null object\n",
      "events_url             39987 non-null object\n",
      "followers              39987 non-null int64\n",
      "followers_url          39987 non-null object\n",
      "following              39987 non-null int64\n",
      "following_url          39987 non-null object\n",
      "gists_url              39987 non-null object\n",
      "gravatar_id            39987 non-null object\n",
      "hireable               2998 non-null object\n",
      "html_url               39987 non-null object\n",
      "id                     39987 non-null int64\n",
      "location               11293 non-null object\n",
      "login                  39987 non-null object\n",
      "name                   21229 non-null object\n",
      "node_id                39987 non-null object\n",
      "organizations_url      39987 non-null object\n",
      "public_gists           39987 non-null int64\n",
      "public_repos           39987 non-null int64\n",
      "received_events_url    39987 non-null object\n",
      "repos_url              39987 non-null object\n",
      "site_admin             39987 non-null bool\n",
      "starred_url            39987 non-null object\n",
      "subscriptions_url      39987 non-null object\n",
      "type                   39987 non-null object\n",
      "updated_at             39987 non-null object\n",
      "url                    39987 non-null object\n",
      "dtypes: bool(1), int64(5), object(26)\n",
      "memory usage: 9.5+ MB\n"
     ]
    }
   ],
   "source": [
    "user_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_data.to_csv('users_data.csv', index=False)\n",
    "issues_data.to_csv('issues_data.csv', index=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. User数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>_id</th>\n",
       "      <th>avatar_url</th>\n",
       "      <th>bio</th>\n",
       "      <th>blog</th>\n",
       "      <th>company</th>\n",
       "      <th>created_at</th>\n",
       "      <th>email</th>\n",
       "      <th>events_url</th>\n",
       "      <th>followers</th>\n",
       "      <th>followers_url</th>\n",
       "      <th>...</th>\n",
       "      <th>public_gists</th>\n",
       "      <th>public_repos</th>\n",
       "      <th>received_events_url</th>\n",
       "      <th>repos_url</th>\n",
       "      <th>site_admin</th>\n",
       "      <th>starred_url</th>\n",
       "      <th>subscriptions_url</th>\n",
       "      <th>type</th>\n",
       "      <th>updated_at</th>\n",
       "      <th>url</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11573</th>\n",
       "      <td>5c9d11556b678c3a645f6f63</td>\n",
       "      <td>https://avatars0.githubusercontent.com/u/36983...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-03-02T07:31:00Z</td>\n",
       "      <td>NaN</td>\n",
       "      <td>https://api.github.com/users/hshjf1990/events{...</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/users/hshjf1990/followers</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/users/hshjf1990/receive...</td>\n",
       "      <td>https://api.github.com/users/hshjf1990/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/hshjf1990/starred...</td>\n",
       "      <td>https://api.github.com/users/hshjf1990/subscri...</td>\n",
       "      <td>User</td>\n",
       "      <td>2019-03-28T02:57:16Z</td>\n",
       "      <td>https://api.github.com/users/hshjf1990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16710</th>\n",
       "      <td>5c9d132b6b678c3a645f97f7</td>\n",
       "      <td>https://avatars0.githubusercontent.com/u/21072...</td>\n",
       "      <td>Just not want to be an ordinary people.</td>\n",
       "      <td>NaN</td>\n",
       "      <td>今日头条</td>\n",
       "      <td>2016-08-17T03:08:48Z</td>\n",
       "      <td>747853229@qq.com</td>\n",
       "      <td>https://api.github.com/users/PeterChen1997/eve...</td>\n",
       "      <td>29</td>\n",
       "      <td>https://api.github.com/users/PeterChen1997/fol...</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>56</td>\n",
       "      <td>https://api.github.com/users/PeterChen1997/rec...</td>\n",
       "      <td>https://api.github.com/users/PeterChen1997/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/PeterChen1997/sta...</td>\n",
       "      <td>https://api.github.com/users/PeterChen1997/sub...</td>\n",
       "      <td>User</td>\n",
       "      <td>2019-03-03T15:45:33Z</td>\n",
       "      <td>https://api.github.com/users/PeterChen1997</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35619</th>\n",
       "      <td>5c9d1c906b678c3a64602dec</td>\n",
       "      <td>https://avatars2.githubusercontent.com/u/15088...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2015-10-12T11:55:54Z</td>\n",
       "      <td>NaN</td>\n",
       "      <td>https://api.github.com/users/DabanC/events{/pr...</td>\n",
       "      <td>3</td>\n",
       "      <td>https://api.github.com/users/DabanC/followers</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>https://api.github.com/users/DabanC/received_e...</td>\n",
       "      <td>https://api.github.com/users/DabanC/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/DabanC/starred{/o...</td>\n",
       "      <td>https://api.github.com/users/DabanC/subscriptions</td>\n",
       "      <td>User</td>\n",
       "      <td>2019-03-22T16:45:31Z</td>\n",
       "      <td>https://api.github.com/users/DabanC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22606</th>\n",
       "      <td>5c9d16576b678c3a645fc6c4</td>\n",
       "      <td>https://avatars0.githubusercontent.com/u/11060...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2015-02-18T13:59:05Z</td>\n",
       "      <td>NaN</td>\n",
       "      <td>https://api.github.com/users/qiusl/events{/pri...</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/users/qiusl/followers</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>https://api.github.com/users/qiusl/received_ev...</td>\n",
       "      <td>https://api.github.com/users/qiusl/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/qiusl/starred{/ow...</td>\n",
       "      <td>https://api.github.com/users/qiusl/subscriptions</td>\n",
       "      <td>User</td>\n",
       "      <td>2019-03-28T06:09:59Z</td>\n",
       "      <td>https://api.github.com/users/qiusl</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5c9d076c6b678c3a645f1250</td>\n",
       "      <td>https://avatars0.githubusercontent.com/u/12967...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2015-06-19T13:57:11Z</td>\n",
       "      <td>n1085633848@outlook.com</td>\n",
       "      <td>https://api.github.com/users/YueNing/events{/p...</td>\n",
       "      <td>7</td>\n",
       "      <td>https://api.github.com/users/YueNing/followers</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "      <td>https://api.github.com/users/YueNing/received_...</td>\n",
       "      <td>https://api.github.com/users/YueNing/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/YueNing/starred{/...</td>\n",
       "      <td>https://api.github.com/users/YueNing/subscript...</td>\n",
       "      <td>User</td>\n",
       "      <td>2019-03-25T10:50:50Z</td>\n",
       "      <td>https://api.github.com/users/YueNing</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 32 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                            _id  \\\n",
       "11573  5c9d11556b678c3a645f6f63   \n",
       "16710  5c9d132b6b678c3a645f97f7   \n",
       "35619  5c9d1c906b678c3a64602dec   \n",
       "22606  5c9d16576b678c3a645fc6c4   \n",
       "2      5c9d076c6b678c3a645f1250   \n",
       "\n",
       "                                              avatar_url  \\\n",
       "11573  https://avatars0.githubusercontent.com/u/36983...   \n",
       "16710  https://avatars0.githubusercontent.com/u/21072...   \n",
       "35619  https://avatars2.githubusercontent.com/u/15088...   \n",
       "22606  https://avatars0.githubusercontent.com/u/11060...   \n",
       "2      https://avatars0.githubusercontent.com/u/12967...   \n",
       "\n",
       "                                           bio blog company  \\\n",
       "11573                                      NaN  NaN     NaN   \n",
       "16710  Just not want to be an ordinary people.  NaN    今日头条   \n",
       "35619                                      NaN  NaN     NaN   \n",
       "22606                                      NaN  NaN     NaN   \n",
       "2                                          NaN  NaN     NaN   \n",
       "\n",
       "                 created_at                    email  \\\n",
       "11573  2018-03-02T07:31:00Z                      NaN   \n",
       "16710  2016-08-17T03:08:48Z         747853229@qq.com   \n",
       "35619  2015-10-12T11:55:54Z                      NaN   \n",
       "22606  2015-02-18T13:59:05Z                      NaN   \n",
       "2      2015-06-19T13:57:11Z  n1085633848@outlook.com   \n",
       "\n",
       "                                              events_url  followers  \\\n",
       "11573  https://api.github.com/users/hshjf1990/events{...          0   \n",
       "16710  https://api.github.com/users/PeterChen1997/eve...         29   \n",
       "35619  https://api.github.com/users/DabanC/events{/pr...          3   \n",
       "22606  https://api.github.com/users/qiusl/events{/pri...          0   \n",
       "2      https://api.github.com/users/YueNing/events{/p...          7   \n",
       "\n",
       "                                           followers_url  \\\n",
       "11573   https://api.github.com/users/hshjf1990/followers   \n",
       "16710  https://api.github.com/users/PeterChen1997/fol...   \n",
       "35619      https://api.github.com/users/DabanC/followers   \n",
       "22606       https://api.github.com/users/qiusl/followers   \n",
       "2         https://api.github.com/users/YueNing/followers   \n",
       "\n",
       "                          ...                      public_gists public_repos  \\\n",
       "11573                     ...                                 0            0   \n",
       "16710                     ...                                 1           56   \n",
       "35619                     ...                                 0           12   \n",
       "22606                     ...                                 0            3   \n",
       "2                         ...                                 0           29   \n",
       "\n",
       "                                     received_events_url  \\\n",
       "11573  https://api.github.com/users/hshjf1990/receive...   \n",
       "16710  https://api.github.com/users/PeterChen1997/rec...   \n",
       "35619  https://api.github.com/users/DabanC/received_e...   \n",
       "22606  https://api.github.com/users/qiusl/received_ev...   \n",
       "2      https://api.github.com/users/YueNing/received_...   \n",
       "\n",
       "                                              repos_url site_admin  \\\n",
       "11573      https://api.github.com/users/hshjf1990/repos      False   \n",
       "16710  https://api.github.com/users/PeterChen1997/repos      False   \n",
       "35619         https://api.github.com/users/DabanC/repos      False   \n",
       "22606          https://api.github.com/users/qiusl/repos      False   \n",
       "2            https://api.github.com/users/YueNing/repos      False   \n",
       "\n",
       "                                             starred_url  \\\n",
       "11573  https://api.github.com/users/hshjf1990/starred...   \n",
       "16710  https://api.github.com/users/PeterChen1997/sta...   \n",
       "35619  https://api.github.com/users/DabanC/starred{/o...   \n",
       "22606  https://api.github.com/users/qiusl/starred{/ow...   \n",
       "2      https://api.github.com/users/YueNing/starred{/...   \n",
       "\n",
       "                                       subscriptions_url  type  \\\n",
       "11573  https://api.github.com/users/hshjf1990/subscri...  User   \n",
       "16710  https://api.github.com/users/PeterChen1997/sub...  User   \n",
       "35619  https://api.github.com/users/DabanC/subscriptions  User   \n",
       "22606   https://api.github.com/users/qiusl/subscriptions  User   \n",
       "2      https://api.github.com/users/YueNing/subscript...  User   \n",
       "\n",
       "                 updated_at                                         url  \n",
       "11573  2019-03-28T02:57:16Z      https://api.github.com/users/hshjf1990  \n",
       "16710  2019-03-03T15:45:33Z  https://api.github.com/users/PeterChen1997  \n",
       "35619  2019-03-22T16:45:31Z         https://api.github.com/users/DabanC  \n",
       "22606  2019-03-28T06:09:59Z          https://api.github.com/users/qiusl  \n",
       "2      2019-03-25T10:50:50Z        https://api.github.com/users/YueNing  \n",
       "\n",
       "[5 rows x 32 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "_id                                             5c9d08ab6b678c3a645f1857\n",
       "avatar_url             https://avatars2.githubusercontent.com/u/14572...\n",
       "bio                                                          智者务其实 愚者争虚名\n",
       "blog                                                           dwbbb.com\n",
       "company                                                            Qunar\n",
       "created_at                                          2015-09-21T13:56:07Z\n",
       "email                                                                NaN\n",
       "events_url             https://api.github.com/users/dwb1994/events{/p...\n",
       "followers                                                             36\n",
       "followers_url             https://api.github.com/users/dwb1994/followers\n",
       "following                                                             22\n",
       "following_url          https://api.github.com/users/dwb1994/following...\n",
       "gists_url              https://api.github.com/users/dwb1994/gists{/gi...\n",
       "gravatar_id                                                          NaN\n",
       "hireable                                                             NaN\n",
       "html_url                                      https://github.com/dwb1994\n",
       "id                                                              14572889\n",
       "location                                                         Beijing\n",
       "login                                                            dwb1994\n",
       "name                                                                 董文博\n",
       "node_id                                             MDQ6VXNlcjE0NTcyODg5\n",
       "organizations_url              https://api.github.com/users/dwb1994/orgs\n",
       "public_gists                                                           0\n",
       "public_repos                                                          16\n",
       "received_events_url    https://api.github.com/users/dwb1994/received_...\n",
       "repos_url                     https://api.github.com/users/dwb1994/repos\n",
       "site_admin                                                         False\n",
       "starred_url            https://api.github.com/users/dwb1994/starred{/...\n",
       "subscriptions_url      https://api.github.com/users/dwb1994/subscript...\n",
       "type                                                                User\n",
       "updated_at                                          2019-01-14T03:44:00Z\n",
       "url                                 https://api.github.com/users/dwb1994\n",
       "Name: 666, dtype: object"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data.iloc[666]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['_id', 'avatar_url', 'bio', 'blog', 'company', 'created_at', 'email',\n",
       "       'events_url', 'followers', 'followers_url', 'following',\n",
       "       'following_url', 'gists_url', 'gravatar_id', 'hireable', 'html_url',\n",
       "       'id', 'location', 'login', 'name', 'node_id', 'organizations_url',\n",
       "       'public_gists', 'public_repos', 'received_events_url', 'repos_url',\n",
       "       'site_admin', 'starred_url', 'subscriptions_url', 'type', 'updated_at',\n",
       "       'url'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 先去除对于分析无用的字段\n",
    "user_data.drop(columns = ['_id', 'avatar_url', 'events_url', 'followers_url', 'following_url',\n",
    "                         'gists_url', 'gravatar_id', 'html_url', 'node_id', 'public_gists', \n",
    "                          'received_events_url', 'repos_url', 'site_admin', 'starred_url', \n",
    "                         'subscriptions_url', 'type'], \n",
    "              inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 39987 entries, 0 to 39986\n",
      "Data columns (total 16 columns):\n",
      "bio                  10174 non-null object\n",
      "blog                 6517 non-null object\n",
      "company              5470 non-null object\n",
      "created_at           39987 non-null object\n",
      "email                12729 non-null object\n",
      "followers            39987 non-null int64\n",
      "following            39987 non-null int64\n",
      "hireable             2998 non-null object\n",
      "id                   39987 non-null int64\n",
      "location             11286 non-null object\n",
      "login                39987 non-null object\n",
      "name                 21224 non-null object\n",
      "organizations_url    39987 non-null object\n",
      "public_repos         39987 non-null int64\n",
      "updated_at           39987 non-null object\n",
      "url                  39987 non-null object\n",
      "dtypes: int64(4), object(12)\n",
      "memory usage: 4.9+ MB\n"
     ]
    }
   ],
   "source": [
    "user_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 时间类型转换\n",
    "user_data['created_at'] = pd.to_datetime(user_data['created_at'])\n",
    "user_data['updated_at'] = pd.to_datetime(user_data['updated_at'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. Issues数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 10037 entries, 0 to 10036\n",
      "Data columns (total 45 columns):\n",
      "_id                         10037 non-null object\n",
      "assignee                    0 non-null float64\n",
      "assignees                   10037 non-null object\n",
      "author_association          10037 non-null object\n",
      "body                        4547 non-null object\n",
      "closed_at                   0 non-null float64\n",
      "comments                    10037 non-null int64\n",
      "comments_url                10037 non-null object\n",
      "created_at                  10037 non-null object\n",
      "events_url                  10037 non-null object\n",
      "html_url                    10037 non-null object\n",
      "id                          10037 non-null int64\n",
      "labels                      10037 non-null object\n",
      "labels_url                  10037 non-null object\n",
      "locked                      10037 non-null bool\n",
      "milestone                   0 non-null float64\n",
      "node_id                     10037 non-null object\n",
      "number                      10037 non-null int64\n",
      "pull_request.diff_url       48 non-null object\n",
      "pull_request.html_url       48 non-null object\n",
      "pull_request.patch_url      48 non-null object\n",
      "pull_request.url            48 non-null object\n",
      "repository_url              10037 non-null object\n",
      "state                       10037 non-null object\n",
      "title                       10037 non-null object\n",
      "updated_at                  10037 non-null object\n",
      "url                         10037 non-null object\n",
      "user.avatar_url             10037 non-null object\n",
      "user.events_url             10037 non-null object\n",
      "user.followers_url          10037 non-null object\n",
      "user.following_url          10037 non-null object\n",
      "user.gists_url              10037 non-null object\n",
      "user.gravatar_id            0 non-null float64\n",
      "user.html_url               10037 non-null object\n",
      "user.id                     10037 non-null int64\n",
      "user.login                  10037 non-null object\n",
      "user.node_id                10037 non-null object\n",
      "user.organizations_url      10037 non-null object\n",
      "user.received_events_url    10037 non-null object\n",
      "user.repos_url              10037 non-null object\n",
      "user.site_admin             10037 non-null bool\n",
      "user.starred_url            10037 non-null object\n",
      "user.subscriptions_url      10037 non-null object\n",
      "user.type                   10037 non-null object\n",
      "user.url                    10037 non-null object\n",
      "dtypes: bool(2), float64(4), int64(4), object(35)\n",
      "memory usage: 3.3+ MB\n"
     ]
    }
   ],
   "source": [
    "issues_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>_id</th>\n",
       "      <th>assignee</th>\n",
       "      <th>assignees</th>\n",
       "      <th>author_association</th>\n",
       "      <th>body</th>\n",
       "      <th>closed_at</th>\n",
       "      <th>comments</th>\n",
       "      <th>comments_url</th>\n",
       "      <th>created_at</th>\n",
       "      <th>events_url</th>\n",
       "      <th>...</th>\n",
       "      <th>user.login</th>\n",
       "      <th>user.node_id</th>\n",
       "      <th>user.organizations_url</th>\n",
       "      <th>user.received_events_url</th>\n",
       "      <th>user.repos_url</th>\n",
       "      <th>user.site_admin</th>\n",
       "      <th>user.starred_url</th>\n",
       "      <th>user.subscriptions_url</th>\n",
       "      <th>user.type</th>\n",
       "      <th>user.url</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3715</th>\n",
       "      <td>5c9cebc9ff314fc01c0bf80b</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[]</td>\n",
       "      <td>NONE</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>2019-03-28T05:26:11Z</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>...</td>\n",
       "      <td>Beerus-Lee</td>\n",
       "      <td>MDQ6VXNlcjE3MjY2NzA5</td>\n",
       "      <td>https://api.github.com/users/Beerus-Lee/orgs</td>\n",
       "      <td>https://api.github.com/users/Beerus-Lee/receiv...</td>\n",
       "      <td>https://api.github.com/users/Beerus-Lee/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/Beerus-Lee/starre...</td>\n",
       "      <td>https://api.github.com/users/Beerus-Lee/subscr...</td>\n",
       "      <td>User</td>\n",
       "      <td>https://api.github.com/users/Beerus-Lee</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>301</th>\n",
       "      <td>5c9ce620ff314fc01c0bdb59</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[]</td>\n",
       "      <td>NONE</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>2019-03-28T02:23:49Z</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>...</td>\n",
       "      <td>zlyyyy</td>\n",
       "      <td>MDQ6VXNlcjIyNzYwOTMy</td>\n",
       "      <td>https://api.github.com/users/zlyyyy/orgs</td>\n",
       "      <td>https://api.github.com/users/zlyyyy/received_e...</td>\n",
       "      <td>https://api.github.com/users/zlyyyy/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/zlyyyy/starred{/o...</td>\n",
       "      <td>https://api.github.com/users/zlyyyy/subscriptions</td>\n",
       "      <td>User</td>\n",
       "      <td>https://api.github.com/users/zlyyyy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6695</th>\n",
       "      <td>5c9cf069ff314fc01c0c18a9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[]</td>\n",
       "      <td>NONE</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>2019-03-28T01:43:14Z</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>...</td>\n",
       "      <td>lvdengxia</td>\n",
       "      <td>MDQ6VXNlcjQxNDk1NjEy</td>\n",
       "      <td>https://api.github.com/users/lvdengxia/orgs</td>\n",
       "      <td>https://api.github.com/users/lvdengxia/receive...</td>\n",
       "      <td>https://api.github.com/users/lvdengxia/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/lvdengxia/starred...</td>\n",
       "      <td>https://api.github.com/users/lvdengxia/subscri...</td>\n",
       "      <td>User</td>\n",
       "      <td>https://api.github.com/users/lvdengxia</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4731</th>\n",
       "      <td>5c9cebfaff314fc01c0c0256</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[]</td>\n",
       "      <td>NONE</td>\n",
       "      <td>大型项目跟一波节奏，简历可以吹一下</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>2019-03-28T08:14:59Z</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>...</td>\n",
       "      <td>MoMuBai</td>\n",
       "      <td>MDQ6VXNlcjE2MzgwMzk5</td>\n",
       "      <td>https://api.github.com/users/MoMuBai/orgs</td>\n",
       "      <td>https://api.github.com/users/MoMuBai/received_...</td>\n",
       "      <td>https://api.github.com/users/MoMuBai/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/MoMuBai/starred{/...</td>\n",
       "      <td>https://api.github.com/users/MoMuBai/subscript...</td>\n",
       "      <td>User</td>\n",
       "      <td>https://api.github.com/users/MoMuBai</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>989</th>\n",
       "      <td>5c9ce626ff314fc01c0be0b9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[]</td>\n",
       "      <td>NONE</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>2019-03-27T12:22:46Z</td>\n",
       "      <td>https://api.github.com/repos/996icu/996.ICU/is...</td>\n",
       "      <td>...</td>\n",
       "      <td>Akatsuki-Ryu</td>\n",
       "      <td>MDQ6VXNlcjgwNjIyMDk=</td>\n",
       "      <td>https://api.github.com/users/Akatsuki-Ryu/orgs</td>\n",
       "      <td>https://api.github.com/users/Akatsuki-Ryu/rece...</td>\n",
       "      <td>https://api.github.com/users/Akatsuki-Ryu/repos</td>\n",
       "      <td>False</td>\n",
       "      <td>https://api.github.com/users/Akatsuki-Ryu/star...</td>\n",
       "      <td>https://api.github.com/users/Akatsuki-Ryu/subs...</td>\n",
       "      <td>User</td>\n",
       "      <td>https://api.github.com/users/Akatsuki-Ryu</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 45 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           _id  assignee assignees author_association  \\\n",
       "3715  5c9cebc9ff314fc01c0bf80b       NaN        []               NONE   \n",
       "301   5c9ce620ff314fc01c0bdb59       NaN        []               NONE   \n",
       "6695  5c9cf069ff314fc01c0c18a9       NaN        []               NONE   \n",
       "4731  5c9cebfaff314fc01c0c0256       NaN        []               NONE   \n",
       "989   5c9ce626ff314fc01c0be0b9       NaN        []               NONE   \n",
       "\n",
       "                   body  closed_at  comments  \\\n",
       "3715                NaN        NaN         0   \n",
       "301                 NaN        NaN         0   \n",
       "6695                NaN        NaN         0   \n",
       "4731  大型项目跟一波节奏，简历可以吹一下        NaN         0   \n",
       "989                 NaN        NaN         0   \n",
       "\n",
       "                                           comments_url            created_at  \\\n",
       "3715  https://api.github.com/repos/996icu/996.ICU/is...  2019-03-28T05:26:11Z   \n",
       "301   https://api.github.com/repos/996icu/996.ICU/is...  2019-03-28T02:23:49Z   \n",
       "6695  https://api.github.com/repos/996icu/996.ICU/is...  2019-03-28T01:43:14Z   \n",
       "4731  https://api.github.com/repos/996icu/996.ICU/is...  2019-03-28T08:14:59Z   \n",
       "989   https://api.github.com/repos/996icu/996.ICU/is...  2019-03-27T12:22:46Z   \n",
       "\n",
       "                                             events_url  \\\n",
       "3715  https://api.github.com/repos/996icu/996.ICU/is...   \n",
       "301   https://api.github.com/repos/996icu/996.ICU/is...   \n",
       "6695  https://api.github.com/repos/996icu/996.ICU/is...   \n",
       "4731  https://api.github.com/repos/996icu/996.ICU/is...   \n",
       "989   https://api.github.com/repos/996icu/996.ICU/is...   \n",
       "\n",
       "                        ...                        user.login  \\\n",
       "3715                    ...                        Beerus-Lee   \n",
       "301                     ...                            zlyyyy   \n",
       "6695                    ...                         lvdengxia   \n",
       "4731                    ...                           MoMuBai   \n",
       "989                     ...                      Akatsuki-Ryu   \n",
       "\n",
       "              user.node_id                          user.organizations_url  \\\n",
       "3715  MDQ6VXNlcjE3MjY2NzA5    https://api.github.com/users/Beerus-Lee/orgs   \n",
       "301   MDQ6VXNlcjIyNzYwOTMy        https://api.github.com/users/zlyyyy/orgs   \n",
       "6695  MDQ6VXNlcjQxNDk1NjEy     https://api.github.com/users/lvdengxia/orgs   \n",
       "4731  MDQ6VXNlcjE2MzgwMzk5       https://api.github.com/users/MoMuBai/orgs   \n",
       "989   MDQ6VXNlcjgwNjIyMDk=  https://api.github.com/users/Akatsuki-Ryu/orgs   \n",
       "\n",
       "                               user.received_events_url  \\\n",
       "3715  https://api.github.com/users/Beerus-Lee/receiv...   \n",
       "301   https://api.github.com/users/zlyyyy/received_e...   \n",
       "6695  https://api.github.com/users/lvdengxia/receive...   \n",
       "4731  https://api.github.com/users/MoMuBai/received_...   \n",
       "989   https://api.github.com/users/Akatsuki-Ryu/rece...   \n",
       "\n",
       "                                       user.repos_url  user.site_admin  \\\n",
       "3715    https://api.github.com/users/Beerus-Lee/repos            False   \n",
       "301         https://api.github.com/users/zlyyyy/repos            False   \n",
       "6695     https://api.github.com/users/lvdengxia/repos            False   \n",
       "4731       https://api.github.com/users/MoMuBai/repos            False   \n",
       "989   https://api.github.com/users/Akatsuki-Ryu/repos            False   \n",
       "\n",
       "                                       user.starred_url  \\\n",
       "3715  https://api.github.com/users/Beerus-Lee/starre...   \n",
       "301   https://api.github.com/users/zlyyyy/starred{/o...   \n",
       "6695  https://api.github.com/users/lvdengxia/starred...   \n",
       "4731  https://api.github.com/users/MoMuBai/starred{/...   \n",
       "989   https://api.github.com/users/Akatsuki-Ryu/star...   \n",
       "\n",
       "                                 user.subscriptions_url user.type  \\\n",
       "3715  https://api.github.com/users/Beerus-Lee/subscr...      User   \n",
       "301   https://api.github.com/users/zlyyyy/subscriptions      User   \n",
       "6695  https://api.github.com/users/lvdengxia/subscri...      User   \n",
       "4731  https://api.github.com/users/MoMuBai/subscript...      User   \n",
       "989   https://api.github.com/users/Akatsuki-Ryu/subs...      User   \n",
       "\n",
       "                                       user.url  \n",
       "3715    https://api.github.com/users/Beerus-Lee  \n",
       "301         https://api.github.com/users/zlyyyy  \n",
       "6695     https://api.github.com/users/lvdengxia  \n",
       "4731       https://api.github.com/users/MoMuBai  \n",
       "989   https://api.github.com/users/Akatsuki-Ryu  \n",
       "\n",
       "[5 rows x 45 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issues_data.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "_id                                                  5c9ce625ff314fc01c0bdfef\n",
       "assignee                                                                  NaN\n",
       "assignees                                                                  []\n",
       "author_association                                                       NONE\n",
       "body                                                                      NaN\n",
       "closed_at                                                                 NaN\n",
       "comments                                                                    0\n",
       "comments_url                https://api.github.com/repos/996icu/996.ICU/is...\n",
       "created_at                                               2019-03-28T02:01:06Z\n",
       "events_url                  https://api.github.com/repos/996icu/996.ICU/is...\n",
       "html_url                        https://github.com/996icu/996.ICU/issues/2509\n",
       "id                                                                  426259315\n",
       "labels                                                                     []\n",
       "labels_url                  https://api.github.com/repos/996icu/996.ICU/is...\n",
       "locked                                                                  False\n",
       "milestone                                                                 NaN\n",
       "node_id                                              MDU6SXNzdWU0MjYyNTkzMTU=\n",
       "number                                                                   2509\n",
       "pull_request.diff_url                                                     NaN\n",
       "pull_request.html_url                                                     NaN\n",
       "pull_request.patch_url                                                    NaN\n",
       "pull_request.url                                                          NaN\n",
       "repository_url                    https://api.github.com/repos/996icu/996.ICU\n",
       "state                                                                    open\n",
       "title                                                          参与一下大项目，还有些小激动\n",
       "updated_at                                               2019-03-28T02:01:06Z\n",
       "url                         https://api.github.com/repos/996icu/996.ICU/is...\n",
       "user.avatar_url             https://avatars1.githubusercontent.com/u/17696...\n",
       "user.events_url             https://api.github.com/users/AttackingProgramm...\n",
       "user.followers_url          https://api.github.com/users/AttackingProgramm...\n",
       "user.following_url          https://api.github.com/users/AttackingProgramm...\n",
       "user.gists_url              https://api.github.com/users/AttackingProgramm...\n",
       "user.gravatar_id                                                          NaN\n",
       "user.html_url                          https://github.com/AttackingProgrammer\n",
       "user.id                                                              17696037\n",
       "user.login                                                AttackingProgrammer\n",
       "user.node_id                                             MDQ6VXNlcjE3Njk2MDM3\n",
       "user.organizations_url      https://api.github.com/users/AttackingProgramm...\n",
       "user.received_events_url    https://api.github.com/users/AttackingProgramm...\n",
       "user.repos_url              https://api.github.com/users/AttackingProgramm...\n",
       "user.site_admin                                                         False\n",
       "user.starred_url            https://api.github.com/users/AttackingProgramm...\n",
       "user.subscriptions_url      https://api.github.com/users/AttackingProgramm...\n",
       "user.type                                                                User\n",
       "user.url                     https://api.github.com/users/AttackingProgrammer\n",
       "Name: 888, dtype: object"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issues_data.iloc[888]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 由于字段太多，直接抽取想要的字段\n",
    "issues_data = issues_data[['comments', 'id', 'title', 'updated_at', 'user.id']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 10037 entries, 0 to 10036\n",
      "Data columns (total 5 columns):\n",
      "comments      10037 non-null int64\n",
      "id            10037 non-null int64\n",
      "title         10037 non-null object\n",
      "updated_at    10037 non-null object\n",
      "user.id       10037 non-null int64\n",
      "dtypes: int64(3), object(2)\n",
      "memory usage: 392.1+ KB\n"
     ]
    }
   ],
   "source": [
    "issues_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 时间类型转换\n",
    "issues_data['updated_at'] = pd.to_datetime(issues_data['updated_at'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 问题\n",
    "User_data拥有的字段：用户简介、博客、所在单位、账号创建时间、email、关注者数、被关注者数、是否能雇用、ID、所在地址、名字、组织url、公开repos数、更新时间等\n",
    "\n",
    "Issues_data拥有的字段：issue评论数、ID、issue题目、更新时间、提问者ID\n",
    "\n",
    "- 3.1 关注996的程序员，都来自于哪些单位？\n",
    "- 3.2 关注996的程序员，都来自于哪些城市？\n",
    "- 3.3 关注996的程序员的画像\n",
    "- 3.4 大家所关注的问题都有哪些？\n",
    "- 3.5 关注996的程序员的简介词云图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.1 关注996的程序员，都来自于哪些单位？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 39987 entries, 0 to 39986\n",
      "Data columns (total 16 columns):\n",
      "bio                  10174 non-null object\n",
      "blog                 6517 non-null object\n",
      "company              5470 non-null object\n",
      "created_at           39987 non-null datetime64[ns]\n",
      "email                12729 non-null object\n",
      "followers            39987 non-null int64\n",
      "following            39987 non-null int64\n",
      "hireable             2998 non-null object\n",
      "id                   39987 non-null int64\n",
      "location             11286 non-null object\n",
      "login                39987 non-null object\n",
      "name                 21224 non-null object\n",
      "organizations_url    39987 non-null object\n",
      "public_repos         39987 non-null int64\n",
      "updated_at           39987 non-null datetime64[ns]\n",
      "url                  39987 non-null object\n",
      "dtypes: datetime64[ns](2), int64(4), object(10)\n",
      "memory usage: 4.9+ MB\n"
     ]
    }
   ],
   "source": [
    "user_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Tencent                                               79\n",
       "Baidu                                                 37\n",
       "Alibaba                                               36\n",
       "Zhejiang University                                   30\n",
       "JD                                                    29\n",
       "Tsinghua University                                   23\n",
       "Shanghai Jiao Tong University                         20\n",
       "baidu                                                 20\n",
       "UESTC                                                 20\n",
       "Peking University                                     18\n",
       "Nanjing University                                    17\n",
       "SJTU                                                  17\n",
       "None                                                  17\n",
       "none                                                  16\n",
       "China                                                 15\n",
       "Netease                                               15\n",
       "USTC                                                  14\n",
       "ZJU                                                   14\n",
       "@Alibaba                                              14\n",
       "BUPT                                                  14\n",
       "Wuhan University                                      14\n",
       "ThoughtWorks                                          13\n",
       "alibaba                                               13\n",
       "NetEase                                               13\n",
       "Fudan University                                      12\n",
       "@Tencent                                              12\n",
       "meituan                                               11\n",
       "HUST                                                  11\n",
       "Harbin Institute of Technology                        11\n",
       "Xidian University                                     10\n",
       "Bytedance                                             10\n",
       "百度                                                    10\n",
       "@alibaba                                               9\n",
       "Beijing Institute of Technology                        9\n",
       "Alibaba Group                                          9\n",
       "JD.COM                                                 9\n",
       "Alibaba Inc.                                           8\n",
       "NJU                                                    8\n",
       "Alipay                                                 8\n",
       "baidu.com                                              8\n",
       "Beijing University of Posts and Telecommunications     8\n",
       "Carnegie Mellon University                             8\n",
       "JD.com                                                 8\n",
       "Beihang University                                     8\n",
       "SYSU                                                   8\n",
       "Microsoft                                              7\n",
       "free                                                   7\n",
       "South China University of Technology                   7\n",
       "Google                                                 7\n",
       "tencent                                                7\n",
       "Name: company, dtype: int64"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 单位字段太乱了！先把爬名前50的提出来\n",
    "user_data['company'].value_counts()[:50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Tencent', 'Baidu', 'Alibaba', 'Zhejiang University', 'JD',\n",
       "       'Tsinghua University', 'Shanghai Jiao Tong University', 'baidu',\n",
       "       'UESTC', 'Peking University', 'Nanjing University', 'SJTU', 'None',\n",
       "       'none', 'China', 'Netease', 'USTC', 'ZJU', '@Alibaba', 'BUPT',\n",
       "       'Wuhan University', 'ThoughtWorks', 'alibaba', 'NetEase',\n",
       "       'Fudan University', '@Tencent', 'meituan', 'HUST',\n",
       "       'Harbin Institute of Technology', 'Xidian University', 'Bytedance',\n",
       "       '百度', '@alibaba', 'Beijing Institute of Technology', 'Alibaba Group',\n",
       "       'JD.COM', 'Alibaba Inc.', 'NJU', 'Alipay', 'baidu.com',\n",
       "       'Beijing University of Posts and Telecommunications',\n",
       "       'Carnegie Mellon University', 'JD.com', 'Beihang University', 'SYSU',\n",
       "       'Microsoft', 'free', 'South China University of Technology', 'Google',\n",
       "       'tencent', 'eleme', 'Freelancer', 'DiDi', 'no', 'BIT', 'HIT',\n",
       "       'Southeast University', 'Huawei', 'Baidu, Inc.', 'Neusoft',\n",
       "       'Sun Yat-sen University', 'BUAA', '@bytedance', '@tencent',\n",
       "       '@Microsoft ', 'Xiaomi', 'Xiamen University', 'Tongji University',\n",
       "       'East China Normal University', 'china',\n",
       "       'Huazhong University of Science and Technology', 'Meituan', 'inspur',\n",
       "       'Meitu', 'ECNU', 'WHU', '滴滴出行', 'ZTE', 'student', 'ICT', 'xiaomi',\n",
       "       '360', 'Sichuan University', 'Home', 'Student', 'SCUT', 'ByteDance',\n",
       "       'Qihoo 360', 'Null', 'jd', '@baidu ', 'Lenovo',\n",
       "       'ShanghaiTech University', 'SUSTech', 'IBM', '@Meituan-Dianping',\n",
       "       'netease', 'THU', 'Weibo', 'TAL'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data['company'].value_counts()[:100].index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_company(data):\n",
    "    for com in ['encent', '腾讯']:\n",
    "        if com in data:\n",
    "            return '腾讯'\n",
    "    for com1 in ['aidu', '百度']:\n",
    "        if com1 in data:\n",
    "            return '百度'\n",
    "    for com2 in ['libaba', '淘宝', 'aobao', 'lipay', '阿里巴巴', 'liyun', '阿里云']:\n",
    "        if com2 in data:\n",
    "            return '阿里系'\n",
    "    for com3 in ['JD', 'jd', '京东']:\n",
    "        if com3 in data:\n",
    "            return '京东'\n",
    "    for com4 in ['etease', 'etEase', '网易']:\n",
    "        if com4 in data:\n",
    "            return '网易'\n",
    "    for com5 in ['eituan', '美团']:\n",
    "        if com5 in data:\n",
    "            return '美团'\n",
    "    for com6 in ['ytedance', '字节', '头条']:\n",
    "        if com6 in data:\n",
    "            return '头条'\n",
    "    for com7 in ['eleme', '饿了么']:\n",
    "        if com7 in data:\n",
    "            return '饿了么'\n",
    "    for com8 in ['uawei', '华为']:\n",
    "        if com8 in data:\n",
    "            return '华为'\n",
    "    for com9 in['didi', 'DiDi', '滴滴', '嘀嘀']:\n",
    "        if com9 in data:\n",
    "            return '滴滴'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_data['company_top'] = user_data.loc[user_data['company'].notna(), 'company'].apply(get_company)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "top10_com = user_data['company_top'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"b93ace512ee849acabfb76d751207b86\" style=\"width:700px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_b93ace512ee849acabfb76d751207b86 = echarts.init(document.getElementById('b93ace512ee849acabfb76d751207b86'), null, {renderer: 'canvas'});\n",
       "var option_b93ace512ee849acabfb76d751207b86 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5173\\u6ce8996\\u5de5\\u4f5c\\u5236\\u7684\\u7a0b\\u5e8f\\u5458\\u6240\\u5728\\u516c\\u53f8Top10\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 3500440,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                148.0,\n",
       "                126.0,\n",
       "                108.0,\n",
       "                69.0,\n",
       "                50.0,\n",
       "                46.0,\n",
       "                35.0,\n",
       "                17.0,\n",
       "                16.0,\n",
       "                13.0\n",
       "            ],\n",
       "            \"stack\": \"stack_3500440\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 3500440\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 30,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u963f\\u91cc\\u7cfb\",\n",
       "                \"\\u817e\\u8baf\",\n",
       "                \"\\u767e\\u5ea6\",\n",
       "                \"\\u4eac\\u4e1c\",\n",
       "                \"\\u7f51\\u6613\",\n",
       "                \"\\u7f8e\\u56e2\",\n",
       "                \"\\u5934\\u6761\",\n",
       "                \"\\u6ef4\\u6ef4\",\n",
       "                \"\\u534e\\u4e3a\",\n",
       "                \"\\u997f\\u4e86\\u4e48\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_b93ace512ee849acabfb76d751207b86.setOption(option_b93ace512ee849acabfb76d751207b86);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x118ba5710>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts import Bar\n",
    "\n",
    "bar = Bar(\"关注996工作制的程序员所在公司Top10\", width = 700,height=500)\n",
    "bar.add(\"\", top10_com.index, top10_com.values, is_stack=True, \n",
    "       xaxis_label_textsize=20, yaxis_label_textsize=14, is_label_show=True,\n",
    "       xaxis_rotate=30)\n",
    "bar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_uni(data):\n",
    "    for uni in ['hejiang', 'ZJU', 'zju', '浙江大学', '浙大']:\n",
    "        if uni in data:\n",
    "            return '浙大'\n",
    "    for uni2 in ['singhua', '清华大学']:\n",
    "        if uni2 in data:\n",
    "            return '清华'\n",
    "    for uni3 in ['Shanghai Jiao Tong', 'SJTU', '上海交大', '上海交通大学']:\n",
    "        if uni3 in data:\n",
    "            return '上海交大'\n",
    "    for uni4 in ['UESTC', '电子科大', '电子科技大学']:\n",
    "        if uni4 in data:\n",
    "            return '电子科大'\n",
    "    for uni5 in ['Wuhan', '武大', '武汉大学']:\n",
    "        if uni5 in data:\n",
    "            return '武大'\n",
    "    for uni6 in ['USTC', '中科大', '中国科学技术大学']:\n",
    "        if uni6 in data:\n",
    "            return '中科大'\n",
    "    for uni7 in ['Fudan', '复旦']:\n",
    "        if uni7 in data:\n",
    "            return '复旦'\n",
    "    for uni8 in ['arbin', '哈']:\n",
    "        if uni8 in data:\n",
    "            return '哈工大'\n",
    "    for uni9 in ['BUPT', '北邮', '北京邮电']:\n",
    "        if uni9 in data:\n",
    "            return '北邮'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_data['uni_top'] = user_data.loc[user_data['company'].notna(), 'company'].apply(get_uni)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "top10_uni = user_data['uni_top'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"0a3d8f316a534bb3afa516accbfbf01f\" style=\"width:700px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_0a3d8f316a534bb3afa516accbfbf01f = echarts.init(document.getElementById('0a3d8f316a534bb3afa516accbfbf01f'), null, {renderer: 'canvas'});\n",
       "var option_0a3d8f316a534bb3afa516accbfbf01f = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5173\\u6ce8996\\u5de5\\u4f5c\\u5236\\u7684\\u7a0b\\u5e8f\\u5458\\u6240\\u5728\\u5927\\u5b66Top10\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 8589769,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                59.0,\n",
       "                42.0,\n",
       "                31.0,\n",
       "                22.0,\n",
       "                21.0,\n",
       "                18.0,\n",
       "                18.0,\n",
       "                17.0,\n",
       "                15.0\n",
       "            ],\n",
       "            \"stack\": \"stack_8589769\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 8589769\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 30,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u6d59\\u5927\",\n",
       "                \"\\u4e0a\\u6d77\\u4ea4\\u5927\",\n",
       "                \"\\u6e05\\u534e\",\n",
       "                \"\\u7535\\u5b50\\u79d1\\u5927\",\n",
       "                \"\\u5317\\u90ae\",\n",
       "                \"\\u6b66\\u5927\",\n",
       "                \"\\u54c8\\u5de5\\u5927\",\n",
       "                \"\\u4e2d\\u79d1\\u5927\",\n",
       "                \"\\u590d\\u65e6\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_0a3d8f316a534bb3afa516accbfbf01f.setOption(option_0a3d8f316a534bb3afa516accbfbf01f);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11a3d0ef0>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"关注996工作制的程序员所在大学Top10\", width = 700,height=500)\n",
    "bar.add(\"\", top10_uni.index, top10_uni.values, is_stack=True, \n",
    "       xaxis_label_textsize=20, yaxis_label_textsize=14, is_label_show=True,\n",
    "       xaxis_rotate=30)\n",
    "bar"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.2 关注996的程序员，都来自于哪些城市？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "China               762\n",
       "Beijing             668\n",
       "Shanghai            395\n",
       "Beijing, China      308\n",
       "beijing             237\n",
       "Shanghai, China     233\n",
       "北京                  225\n",
       "shanghai            218\n",
       "china               186\n",
       "BeiJing             156\n",
       "Hangzhou            136\n",
       "Beijing,China       135\n",
       "ShangHai            129\n",
       "Hangzhou, China     123\n",
       "上海                  112\n",
       "Shenzhen, China     109\n",
       "Shenzhen            105\n",
       "shenzhen            104\n",
       "Beijing China       100\n",
       "深圳                   93\n",
       "hangzhou             92\n",
       "杭州                   91\n",
       "HangZhou             89\n",
       "Guangzhou            89\n",
       "Shanghai,China       71\n",
       "ShenZhen             71\n",
       "Guangzhou, China     69\n",
       "Shanghai China       67\n",
       "Chengdu              56\n",
       "Chengdu, China       56\n",
       "GuangZhou            50\n",
       "中国                   48\n",
       "Nanjing, China       47\n",
       "chengdu              45\n",
       "广州                   45\n",
       "Shenzhen,China       44\n",
       "Nanjing              42\n",
       "guangzhou            40\n",
       "成都                   39\n",
       "Hangzhou,China       38\n",
       "ChengDu              37\n",
       "ShangHai, China      29\n",
       "Singapore            29\n",
       "Guangzhou,China      29\n",
       "China Beijing        28\n",
       "Hong Kong            28\n",
       "Wuhan                27\n",
       "nanjing              27\n",
       "Beijing.China        26\n",
       "HangZhou China       25\n",
       "Name: location, dtype: int64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data['location'].value_counts()[:50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['China', 'Beijing', 'Shanghai', 'Beijing, China', 'beijing',\n",
       "       'Shanghai, China', '北京', 'shanghai', 'china', 'BeiJing', 'Hangzhou',\n",
       "       'Beijing,China', 'ShangHai', 'Hangzhou, China', '上海', 'Shenzhen, China',\n",
       "       'Shenzhen', 'shenzhen', 'Beijing China', '深圳', 'hangzhou', '杭州',\n",
       "       'HangZhou', 'Guangzhou', 'Shanghai,China', 'ShenZhen',\n",
       "       'Guangzhou, China', 'Shanghai China', 'Chengdu', 'Chengdu, China',\n",
       "       'GuangZhou', '中国', 'Nanjing, China', 'chengdu', '广州', 'Shenzhen,China',\n",
       "       'Nanjing', 'guangzhou', '成都', 'Hangzhou,China', 'ChengDu',\n",
       "       'ShangHai, China', 'Singapore', 'Guangzhou,China', 'China Beijing',\n",
       "       'Hong Kong', 'Wuhan', 'nanjing', 'Beijing.China', 'HangZhou China'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data['location'].value_counts()[:50].index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_city(data):\n",
    "    for city in ['eijing', '北京']:\n",
    "        if city in data:\n",
    "            return '北京'\n",
    "    for city1 in ['hanghai', '上海']:\n",
    "        if city1 in data:\n",
    "            return '上海'\n",
    "    for city2 in ['Hangzhou', 'hangzhou', '杭州']:\n",
    "        if city2 in data:\n",
    "            return '杭州'\n",
    "    for city3 in ['henzhen', '深圳']:\n",
    "        if city3 in data:\n",
    "            return '深圳'\n",
    "    for city4 in ['Guangzhou', 'guangzhou', '广州']:\n",
    "        if city4 in data:\n",
    "            return '广州'\n",
    "    for city5 in ['hengdu', '成都']:\n",
    "        if city5 in data:\n",
    "            return '成都'\n",
    "    for city6 in ['anjing', '南京']:\n",
    "        if city6 in data:\n",
    "            return '南京'\n",
    "    for city7 in ['ingapore', '新加坡']:\n",
    "        if city7 in data:\n",
    "            return '新加坡'\n",
    "    for city8 in ['Hong Kong', 'hong kong', '香港']:\n",
    "        if city8 in data:\n",
    "            return '香港'\n",
    "    for city9 in ['uhan', '武汉']:\n",
    "        if city9 in data:\n",
    "            return '武汉'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_data['city_top'] = user_data.loc[user_data['location'].notna(), 'location'].apply(get_city)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "top10_city = user_data['city_top'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"fb9bd78f25d84e35ba19f161761bde08\" style=\"width:700px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_fb9bd78f25d84e35ba19f161761bde08 = echarts.init(document.getElementById('fb9bd78f25d84e35ba19f161761bde08'), null, {renderer: 'canvas'});\n",
       "var option_fb9bd78f25d84e35ba19f161761bde08 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5173\\u6ce8996\\u5de5\\u4f5c\\u5236\\u7684\\u7a0b\\u5e8f\\u5458\\u6240\\u5728\\u57ce\\u5e02Top10\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 234759,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                2094.0,\n",
       "                1347.0,\n",
       "                745.0,\n",
       "                695.0,\n",
       "                416.0,\n",
       "                381.0,\n",
       "                261.0,\n",
       "                217.0,\n",
       "                35.0,\n",
       "                31.0\n",
       "            ],\n",
       "            \"stack\": \"stack_234759\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 234759\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 30,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u5317\\u4eac\",\n",
       "                \"\\u4e0a\\u6d77\",\n",
       "                \"\\u676d\\u5dde\",\n",
       "                \"\\u6df1\\u5733\",\n",
       "                \"\\u6210\\u90fd\",\n",
       "                \"\\u5e7f\\u5dde\",\n",
       "                \"\\u5357\\u4eac\",\n",
       "                \"\\u6b66\\u6c49\",\n",
       "                \"\\u65b0\\u52a0\\u5761\",\n",
       "                \"\\u9999\\u6e2f\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_fb9bd78f25d84e35ba19f161761bde08.setOption(option_fb9bd78f25d84e35ba19f161761bde08);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11a3d0e48>"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"关注996工作制的程序员所在城市Top10\", width = 700,height=500)\n",
    "bar.add(\"\", top10_city.index, top10_city.values, is_stack=True, \n",
    "       xaxis_label_textsize=20, yaxis_label_textsize=14, is_label_show=True,\n",
    "       xaxis_rotate=30)\n",
    "bar"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.3 关注996的程序员的画像"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 39987 entries, 0 to 39986\n",
      "Data columns (total 19 columns):\n",
      "bio                  10174 non-null object\n",
      "blog                 6517 non-null object\n",
      "company              5470 non-null object\n",
      "created_at           39987 non-null datetime64[ns]\n",
      "email                12729 non-null object\n",
      "followers            39987 non-null int64\n",
      "following            39987 non-null int64\n",
      "hireable             2998 non-null object\n",
      "id                   39987 non-null int64\n",
      "location             11286 non-null object\n",
      "login                39987 non-null object\n",
      "name                 21224 non-null object\n",
      "organizations_url    39987 non-null object\n",
      "public_repos         39987 non-null int64\n",
      "updated_at           39987 non-null datetime64[ns]\n",
      "url                  39987 non-null object\n",
      "company_top          628 non-null object\n",
      "uni_top              243 non-null object\n",
      "city_top             6222 non-null object\n",
      "dtypes: datetime64[ns](2), int64(4), object(13)\n",
      "memory usage: 5.8+ MB\n"
     ]
    }
   ],
   "source": [
    "user_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 关注996工作制的程序员Github平均粉丝数、关注数、仓库数\n",
    "user_mean = user_data[['followers', 'following', 'public_repos']].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"bf54aaec7ca34040bcc51db07ba902b5\" style=\"width:500px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_bf54aaec7ca34040bcc51db07ba902b5 = echarts.init(document.getElementById('bf54aaec7ca34040bcc51db07ba902b5'), null, {renderer: 'canvas'});\n",
       "var option_bf54aaec7ca34040bcc51db07ba902b5 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5173\\u6ce8996\\u5de5\\u4f5c\\u5236\\u7684\\u7a0b\\u5e8f\\u5458Github\\u5e73\\u5747\\u7c89\\u4e1d\\u6570\\u3001\\u5173\\u6ce8\\u6570\\u3001\\u4ed3\\u5e93\\u6570\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 5809240,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                10.9,\n",
       "                14.6,\n",
       "                19.1\n",
       "            ],\n",
       "            \"stack\": \"stack_5809240\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 5809240\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u7c89\\u4e1d\\u6570\",\n",
       "                \"\\u5173\\u6ce8\\u6570\",\n",
       "                \"\\u4ed3\\u5e93\\u6570\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_bf54aaec7ca34040bcc51db07ba902b5.setOption(option_bf54aaec7ca34040bcc51db07ba902b5);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11a3f64e0>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"关注996工作制的程序员Github平均粉丝数、关注数、仓库数\", width = 500,height=500)\n",
    "bar.add(\"\", ['粉丝数', '关注数', '仓库数'], np.round(user_mean.values, 1), is_stack=True, \n",
    "       xaxis_label_textsize=20, yaxis_label_textsize=14, is_label_show=True)\n",
    "bar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11a3f62e8>"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a3f6d68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 关注996工作制的程序员Github粉丝数分布图\n",
    "sns.set(font_scale=1.5)\n",
    "sns.distplot(user_data.loc[user_data['followers'] < 50, 'followers'], kde=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 关注996工作制的程序员注册Github时长\n",
    "user_data['time'] = pd.to_datetime('2019-03-28')- user_data['created_at']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timedelta('1180 days 12:14:39.238977')"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data['time'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.232876712328767"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 平均注册市场3.2年\n",
    "1180/365"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_days(data):\n",
    "    return data.days\n",
    "\n",
    "user_data['time_days'] = user_data['time'].apply(get_days)/365"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,0,'Year')"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11de016a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 关注996工作制的程序员注册Github时长分布图\n",
    "sns.set(font_scale=1.5)\n",
    "ax = sns.distplot(user_data['time_days'], kde=False)\n",
    "ax.set_xlabel('Year')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>login</th>\n",
       "      <th>followers</th>\n",
       "      <th>url</th>\n",
       "      <th>bio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>6851</th>\n",
       "      <td>vczh</td>\n",
       "      <td>13793</td>\n",
       "      <td>https://api.github.com/users/vczh</td>\n",
       "      <td>Programmer with no technology bias. Main contr...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7092</th>\n",
       "      <td>chokcoco</td>\n",
       "      <td>4130</td>\n",
       "      <td>https://api.github.com/users/chokcoco</td>\n",
       "      <td>国服第一切图仔</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7193</th>\n",
       "      <td>singwhatiwanna</td>\n",
       "      <td>6632</td>\n",
       "      <td>https://api.github.com/users/singwhatiwanna</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8142</th>\n",
       "      <td>Ovilia</td>\n",
       "      <td>8043</td>\n",
       "      <td>https://api.github.com/users/Ovilia</td>\n",
       "      <td>Creative Web Developer &amp; Designer</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13325</th>\n",
       "      <td>wizardforcel</td>\n",
       "      <td>5522</td>\n",
       "      <td>https://api.github.com/users/wizardforcel</td>\n",
       "      <td>我自成佛自度我，佛度凡尘我度佛。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19710</th>\n",
       "      <td>yanhaijing</td>\n",
       "      <td>3834</td>\n",
       "      <td>https://api.github.com/users/yanhaijing</td>\n",
       "      <td>知名技术博主，开源达人，《React状态管理与同构实战》作者，yanhaijing.com</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21603</th>\n",
       "      <td>liuyubobobo</td>\n",
       "      <td>3392</td>\n",
       "      <td>https://api.github.com/users/liuyubobobo</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27695</th>\n",
       "      <td>draveness</td>\n",
       "      <td>3128</td>\n",
       "      <td>https://api.github.com/users/draveness</td>\n",
       "      <td>Go / Rails / Rust</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30008</th>\n",
       "      <td>Germey</td>\n",
       "      <td>3520</td>\n",
       "      <td>https://api.github.com/users/Germey</td>\n",
       "      <td>Talk is cheap, show me the code.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39663</th>\n",
       "      <td>88250</td>\n",
       "      <td>7006</td>\n",
       "      <td>https://api.github.com/users/88250</td>\n",
       "      <td>开源程序员，自由职业者 🎸 Stairway To Heaven | 再见理想 | 浮夸\\r\\n</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                login  followers                                          url  \\\n",
       "6851             vczh      13793            https://api.github.com/users/vczh   \n",
       "7092         chokcoco       4130        https://api.github.com/users/chokcoco   \n",
       "7193   singwhatiwanna       6632  https://api.github.com/users/singwhatiwanna   \n",
       "8142           Ovilia       8043          https://api.github.com/users/Ovilia   \n",
       "13325    wizardforcel       5522    https://api.github.com/users/wizardforcel   \n",
       "19710      yanhaijing       3834      https://api.github.com/users/yanhaijing   \n",
       "21603     liuyubobobo       3392     https://api.github.com/users/liuyubobobo   \n",
       "27695       draveness       3128       https://api.github.com/users/draveness   \n",
       "30008          Germey       3520          https://api.github.com/users/Germey   \n",
       "39663           88250       7006           https://api.github.com/users/88250   \n",
       "\n",
       "                                                     bio  \n",
       "6851   Programmer with no technology bias. Main contr...  \n",
       "7092                                             国服第一切图仔  \n",
       "7193                                                 NaN  \n",
       "8142                   Creative Web Developer & Designer  \n",
       "13325                                   我自成佛自度我，佛度凡尘我度佛。  \n",
       "19710      知名技术博主，开源达人，《React状态管理与同构实战》作者，yanhaijing.com  \n",
       "21603                                                NaN  \n",
       "27695                                  Go / Rails / Rust  \n",
       "30008                   Talk is cheap, show me the code.  \n",
       "39663   开源程序员，自由职业者 🎸 Stairway To Heaven | 再见理想 | 浮夸\\r\\n  "
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 关注996工作制的程序员大牛\n",
    "user_data.loc[user_data['followers'] > 3000, ['login', 'followers','url', 'bio']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "47"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data[user_data['followers'] > 1000].shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "110"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data[user_data['followers'] > 500].shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "598"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_data[user_data['followers'] > 100].shape[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.4 大家所关注的问题都有哪些？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 10037 entries, 0 to 10036\n",
      "Data columns (total 5 columns):\n",
      "comments      10037 non-null int64\n",
      "id            10037 non-null int64\n",
      "title         10037 non-null object\n",
      "updated_at    10037 non-null datetime64[ns]\n",
      "user.id       10037 non-null int64\n",
      "dtypes: datetime64[ns](1), int64(3), object(1)\n",
      "memory usage: 392.1+ KB\n"
     ]
    }
   ],
   "source": [
    "issues_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>title</th>\n",
       "      <th>comments</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2553</th>\n",
       "      <td>Discussion thread</td>\n",
       "      <td>1243</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2610</th>\n",
       "      <td>求个\"工作 996，生病 ICU\" 壁纸 打算做电脑壁纸</td>\n",
       "      <td>62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6246</th>\n",
       "      <td>以后，简历上可以写， 参加过2000+ star 开源项目。</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8304</th>\n",
       "      <td>我不懂法律，但是我想知道到底违法不？</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1121</th>\n",
       "      <td>996.ICU能进star榜历史前十吗？</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5833</th>\n",
       "      <td>关于 反996制度运动 的一些实际性建议</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5870</th>\n",
       "      <td>一边拿着公司的钱，还一边挖苦公司，吃相真难看</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3672</th>\n",
       "      <td>今晚加班，到10W删库。</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6253</th>\n",
       "      <td>96年萌妹程序员找男盆友</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5161</th>\n",
       "      <td>给袁博磕头</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               title  comments\n",
       "2553               Discussion thread      1243\n",
       "2610    求个\"工作 996，生病 ICU\" 壁纸 打算做电脑壁纸        62\n",
       "6246  以后，简历上可以写， 参加过2000+ star 开源项目。        53\n",
       "8304              我不懂法律，但是我想知道到底违法不？        39\n",
       "1121            996.ICU能进star榜历史前十吗？        37\n",
       "5833            关于 反996制度运动 的一些实际性建议        30\n",
       "5870          一边拿着公司的钱，还一边挖苦公司，吃相真难看        30\n",
       "3672                    今晚加班，到10W删库。        26\n",
       "6253                    96年萌妹程序员找男盆友        25\n",
       "5161                           给袁博磕头        24"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issues_data.iloc[issues_data['comments'].nlargest(10).index][['title', 'comments']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Loading model from cache /var/folders/mc/k6p_zt453w770h63024z__vw0000gn/T/jieba.cache\n",
      "Loading model cost 1.211 seconds.\n",
      "Prefix dict has been built succesfully.\n"
     ]
    }
   ],
   "source": [
    "# 大家都在讨论什么东西呢？\n",
    "import jieba\n",
    "from collections import Counter\n",
    "from pyecharts import WordCloud\n",
    "\n",
    "jieba.add_word('996')\n",
    "jieba.add_word('996制度')\n",
    "jieba.add_word('ICU')\n",
    "\n",
    "swords = [x.strip() for x in open ('stopwords.txt')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_word_cloud(data, swords):\n",
    "    text = ''.join(data['title'])\n",
    "    words = list(jieba.cut(text))\n",
    "    ex_sw_words = []\n",
    "    for word in words:\n",
    "        if len(word)>1 and (word not in swords):\n",
    "            ex_sw_words.append(word)\n",
    "    c = Counter()\n",
    "    c = Counter(ex_sw_words)\n",
    "    wc_data = pd.DataFrame({'word':list(c.keys()), 'counts':list(c.values())}).sort_values(by='counts', ascending=False).head(100)\n",
    "    wordcloud = WordCloud(width=1300, height=620)\n",
    "    wordcloud.add(\"\", wc_data['word'], wc_data['counts'], word_size_range=[20, 100])\n",
    "    return wordcloud"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min', 'wordcloud': '/nbextensions/echarts/echarts-wordcloud.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"461c13021f0542428f0aafe83539c271\" style=\"width:1300px;height:620px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts', 'wordcloud'], function(echarts) {\n",
       "        \n",
       "var myChart_461c13021f0542428f0aafe83539c271 = echarts.init(document.getElementById('461c13021f0542428f0aafe83539c271'), null, {renderer: 'canvas'});\n",
       "var option_461c13021f0542428f0aafe83539c271 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 4000774,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"wordCloud\",\n",
       "            \"name\": \"\",\n",
       "            \"shape\": \"circle\",\n",
       "            \"rotationRange\": [\n",
       "                -90,\n",
       "                90\n",
       "            ],\n",
       "            \"rotationStep\": 45,\n",
       "            \"girdSize\": 20,\n",
       "            \"sizeRange\": [\n",
       "                20,\n",
       "                100\n",
       "            ],\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"996\",\n",
       "                    \"value\": 2311,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(147,43,138)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9879\\u76ee\",\n",
       "                    \"value\": 931,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(95,21,2)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u52a0\\u73ed\",\n",
       "                    \"value\": 575,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(144,27,147)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7a0b\\u5e8f\\u5458\",\n",
       "                    \"value\": 504,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(28,50,153)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u516c\\u53f8\",\n",
       "                    \"value\": 494,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(135,130,120)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6253\\u5361\",\n",
       "                    \"value\": 493,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(95,101,144)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u53c2\\u4e0e\",\n",
       "                    \"value\": 480,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(42,141,152)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"star\",\n",
       "                    \"value\": 409,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(137,131,74)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e00\\u4e0b\",\n",
       "                    \"value\": 365,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(42,3,85)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"ICU\",\n",
       "                    \"value\": 350,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(58,7,26)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e0b\\u73ed\",\n",
       "                    \"value\": 319,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(149,25,141)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e7f\\u544a\",\n",
       "                    \"value\": 277,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(8,4,53)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6253\\u5e7f\\u544a\",\n",
       "                    \"value\": 268,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(34,103,83)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u62b5\\u5236\",\n",
       "                    \"value\": 266,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(29,75,97)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u524d\\u7aef\",\n",
       "                    \"value\": 233,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(157,103,18)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6b22\\u8fce\",\n",
       "                    \"value\": 229,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(30,77,40)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5de5\\u4f5c\",\n",
       "                    \"value\": 224,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(117,52,139)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u52a0\\u5165\",\n",
       "                    \"value\": 188,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(76,6,28)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"github\",\n",
       "                    \"value\": 185,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(57,133,135)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u53c2\\u52a0\",\n",
       "                    \"value\": 176,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(98,60,31)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4ea4\\u6d41\",\n",
       "                    \"value\": 160,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(100,38,123)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u652f\\u6301\",\n",
       "                    \"value\": 155,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(155,75,155)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5410\\u69fd\",\n",
       "                    \"value\": 149,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(11,66,47)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8def\\u8fc7\",\n",
       "                    \"value\": 138,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(83,8,107)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u706b\\u94b3\",\n",
       "                    \"value\": 138,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(114,133,21)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7a0b\\u5e8f\",\n",
       "                    \"value\": 133,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(27,137,54)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"https\",\n",
       "                    \"value\": 130,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(69,31,90)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u626b\\u7801\",\n",
       "                    \"value\": 128,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(10,54,10)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7559\\u540d\",\n",
       "                    \"value\": 127,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(150,98,85)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"icu\",\n",
       "                    \"value\": 127,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(110,130,67)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u73b0\\u5728\",\n",
       "                    \"value\": 126,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(157,122,0)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5218\\u660e\",\n",
       "                    \"value\": 121,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(117,18,138)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e2d\\u56fd\",\n",
       "                    \"value\": 121,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(105,20,87)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5df2\\u7ecf\",\n",
       "                    \"value\": 120,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(15,145,114)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u53f8\\u9a6c\",\n",
       "                    \"value\": 119,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(153,104,100)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f00\\u6e90\",\n",
       "                    \"value\": 118,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(152,152,76)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u62d2\\u7edd\",\n",
       "                    \"value\": 116,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(14,14,80)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u524d\\u6765\",\n",
       "                    \"value\": 115,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(39,10,147)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8001\\u677f\",\n",
       "                    \"value\": 103,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(15,138,84)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"965\",\n",
       "                    \"value\": 99,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(153,26,158)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u676d\\u5dde\",\n",
       "                    \"value\": 98,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(109,150,137)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Android\",\n",
       "                    \"value\": 95,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(60,140,131)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u56f4\\u89c2\",\n",
       "                    \"value\": 93,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(124,32,160)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5efa\\u8bae\",\n",
       "                    \"value\": 91,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(148,131,111)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u65f6\\u95f4\",\n",
       "                    \"value\": 88,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(8,70,159)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e0c\\u671b\",\n",
       "                    \"value\": 87,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(31,129,92)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"com\",\n",
       "                    \"value\": 86,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(57,51,24)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u52a0\\u6cb9\",\n",
       "                    \"value\": 86,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(17,154,91)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7b2c\\u4e00\\u6b21\",\n",
       "                    \"value\": 85,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(9,110,136)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5317\\u4eac\",\n",
       "                    \"value\": 83,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(72,156,158)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u77e5\\u9053\",\n",
       "                    \"value\": 82,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(95,118,149)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u751f\\u6d3b\",\n",
       "                    \"value\": 81,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(106,26,129)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f00\\u53d1\\u8005\",\n",
       "                    \"value\": 81,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(157,133,16)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5de5\\u4f1a\",\n",
       "                    \"value\": 79,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(5,135,137)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Star\",\n",
       "                    \"value\": 78,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(43,108,66)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5c0f\\u65f6\",\n",
       "                    \"value\": 76,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(71,36,30)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5de5\\u8d44\",\n",
       "                    \"value\": 75,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(43,25,102)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e00\\u8d77\",\n",
       "                    \"value\": 74,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(143,80,118)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"10\",\n",
       "                    \"value\": 73,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(89,145,136)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e94\\u8be5\",\n",
       "                    \"value\": 73,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(2,105,27)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e0a\\u73ed\",\n",
       "                    \"value\": 72,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(52,50,56)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6709\\u6ca1\\u6709\",\n",
       "                    \"value\": 72,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(14,4,127)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6df1\\u5733\",\n",
       "                    \"value\": 70,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(99,8,119)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5386\\u53f2\",\n",
       "                    \"value\": 70,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(86,152,158)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4ee5\\u540e\",\n",
       "                    \"value\": 69,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(48,8,122)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u76ee\\u524d\",\n",
       "                    \"value\": 69,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(25,43,55)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5927\\u4f6c\",\n",
       "                    \"value\": 68,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(141,79,160)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8054\\u76df\",\n",
       "                    \"value\": 68,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(106,157,45)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4eca\\u5929\",\n",
       "                    \"value\": 68,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(96,73,157)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9ed1\\u540d\\u5355\",\n",
       "                    \"value\": 67,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(148,147,70)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4eba\\u5de5\\u667a\\u80fd\",\n",
       "                    \"value\": 67,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(19,31,88)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u770b\\u5230\",\n",
       "                    \"value\": 66,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(50,57,154)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6210\\u90fd\",\n",
       "                    \"value\": 66,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(74,42,95)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5168\\u56fd\",\n",
       "                    \"value\": 65,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(22,65,1)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u662f\\u4e0d\\u662f\",\n",
       "                    \"value\": 63,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(159,88,0)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f00\\u53d1\",\n",
       "                    \"value\": 63,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(17,103,87)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4ea4\\u53cb\",\n",
       "                    \"value\": 63,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(159,103,74)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u56fd\\u9645\",\n",
       "                    \"value\": 60,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(79,90,91)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5144\\u5f1f\",\n",
       "                    \"value\": 60,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(80,156,28)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ee7\\u7eed\",\n",
       "                    \"value\": 60,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(21,25,114)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e00\\u6ce2\",\n",
       "                    \"value\": 60,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(122,152,124)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u56fd\\u5bb6\",\n",
       "                    \"value\": 58,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(100,151,3)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5927\\u578b\",\n",
       "                    \"value\": 58,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(12,9,96)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e92\\u8054\\u7f51\",\n",
       "                    \"value\": 57,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(53,41,39)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e16\\u754c\",\n",
       "                    \"value\": 57,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(1,107,27)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"007\",\n",
       "                    \"value\": 56,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(78,98,144)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u95ee\\u9898\",\n",
       "                    \"value\": 56,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(47,155,90)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5938\\u5938\",\n",
       "                    \"value\": 56,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(92,126,153)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5b66\\u4e60\",\n",
       "                    \"value\": 56,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(80,98,96)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e86\\u89e3\",\n",
       "                    \"value\": 55,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(58,11,25)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u53cd\\u5bf9\",\n",
       "                    \"value\": 55,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(123,103,3)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7559\\u4e2a\",\n",
       "                    \"value\": 55,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(109,104,71)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8d44\\u672c\\u5bb6\",\n",
       "                    \"value\": 55,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(6,134,110)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8d3a\\u7535\",\n",
       "                    \"value\": 54,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(142,79,42)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u52b3\\u52a8\\u6cd5\",\n",
       "                    \"value\": 54,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(116,52,43)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4eba\\u6c11\",\n",
       "                    \"value\": 53,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(123,16,89)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u53d1\\u6765\",\n",
       "                    \"value\": 53,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(158,127,145)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5168\\u5bb6\",\n",
       "                    \"value\": 53,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(98,61,134)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"997\",\n",
       "                    \"value\": 52,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(9,36,71)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9700\\u8981\",\n",
       "                    \"value\": 52,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(94,24,10)\"\n",
       "                        }\n",
       "                    }\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_461c13021f0542428f0aafe83539c271.setOption(option_461c13021f0542428f0aafe83539c271);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.wordcloud.WordCloud at 0x1153a2438>"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot_word_cloud(issues_data, swords=swords)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.5 关注996的程序员简介词云图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_word_cloud(data, swords):\n",
    "    text = ''.join(data['bio'].astype('str'))\n",
    "    words = list(jieba.cut(text))\n",
    "    ex_sw_words = []\n",
    "    for word in words:\n",
    "        if len(word)>1 and (word not in swords):\n",
    "            ex_sw_words.append(word)\n",
    "    c = Counter()\n",
    "    c = Counter(ex_sw_words)\n",
    "    wc_data = pd.DataFrame({'word':list(c.keys()), 'counts':list(c.values())}).sort_values(by='counts', ascending=False).head(100)\n",
    "    wordcloud = WordCloud(width=1300, height=620)\n",
    "    wordcloud.add(\"\", wc_data['word'], wc_data['counts'], word_size_range=[20, 100])\n",
    "    return wordcloud"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min', 'wordcloud': '/nbextensions/echarts/echarts-wordcloud.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"714ad27e6df948b9baab60397d64deef\" style=\"width:1300px;height:620px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts', 'wordcloud'], function(echarts) {\n",
       "        \n",
       "var myChart_714ad27e6df948b9baab60397d64deef = echarts.init(document.getElementById('714ad27e6df948b9baab60397d64deef'), null, {renderer: 'canvas'});\n",
       "var option_714ad27e6df948b9baab60397d64deef = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 5090754,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"wordCloud\",\n",
       "            \"name\": \"\",\n",
       "            \"shape\": \"circle\",\n",
       "            \"rotationRange\": [\n",
       "                -90,\n",
       "                90\n",
       "            ],\n",
       "            \"rotationStep\": 45,\n",
       "            \"girdSize\": 20,\n",
       "            \"sizeRange\": [\n",
       "                20,\n",
       "                100\n",
       "            ],\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\r\\n\",\n",
       "                    \"value\": 1367,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(10,125,146)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nan\",\n",
       "                    \"value\": 282,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(100,146,29)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"you\",\n",
       "                    \"value\": 275,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(92,11,105)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nannan\",\n",
       "                    \"value\": 211,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(145,9,111)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"developer\",\n",
       "                    \"value\": 194,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(138,43,35)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"student\",\n",
       "                    \"value\": 183,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(109,88,65)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"on\",\n",
       "                    \"value\": 164,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(6,2,102)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"code\",\n",
       "                    \"value\": 159,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(52,60,18)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u524d\\u7aef\",\n",
       "                    \"value\": 158,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(127,41,128)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Developer\",\n",
       "                    \"value\": 154,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(60,111,11)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"at\",\n",
       "                    \"value\": 152,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(0,114,19)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nannannan\",\n",
       "                    \"value\": 150,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(93,54,45)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"me\",\n",
       "                    \"value\": 150,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(16,30,93)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"com\",\n",
       "                    \"value\": 139,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(29,56,97)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"it\",\n",
       "                    \"value\": 132,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(109,152,49)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"do\",\n",
       "                    \"value\": 132,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(140,100,53)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"my\",\n",
       "                    \"value\": 131,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(106,96,51)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"end\",\n",
       "                    \"value\": 127,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(100,144,48)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nannannannan\",\n",
       "                    \"value\": 126,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(68,146,18)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"more\",\n",
       "                    \"value\": 119,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(122,3,48)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"life\",\n",
       "                    \"value\": 119,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(68,73,92)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"love\",\n",
       "                    \"value\": 114,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(51,21,100)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"world\",\n",
       "                    \"value\": 113,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(133,53,105)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"with\",\n",
       "                    \"value\": 113,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(32,36,84)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Android\",\n",
       "                    \"value\": 110,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(114,83,111)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"University\",\n",
       "                    \"value\": 109,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(38,59,36)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Python\",\n",
       "                    \"value\": 108,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(8,45,28)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"like\",\n",
       "                    \"value\": 107,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(111,15,15)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"learning\",\n",
       "                    \"value\": 101,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(46,24,13)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"can\",\n",
       "                    \"value\": 98,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(136,53,101)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"not\",\n",
       "                    \"value\": 97,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(108,151,83)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"day\",\n",
       "                    \"value\": 97,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(98,92,95)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"coding\",\n",
       "                    \"value\": 96,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(160,48,17)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Java\",\n",
       "                    \"value\": 93,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(11,78,35)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Engineer\",\n",
       "                    \"value\": 92,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(132,21,108)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4ee3\\u7801\",\n",
       "                    \"value\": 91,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(104,27,30)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nannannannannan\",\n",
       "                    \"value\": 89,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(1,12,10)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5de5\\u7a0b\\u5e08\",\n",
       "                    \"value\": 88,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(153,157,49)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"iOS\",\n",
       "                    \"value\": 86,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(12,43,19)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"https\",\n",
       "                    \"value\": 85,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(106,122,142)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"good\",\n",
       "                    \"value\": 84,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(51,111,57)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7a0b\\u5e8f\\u5458\",\n",
       "                    \"value\": 84,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(32,61,5)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"programmer\",\n",
       "                    \"value\": 81,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(116,30,60)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"stay\",\n",
       "                    \"value\": 80,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(41,12,20)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"coder\",\n",
       "                    \"value\": 79,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(86,139,93)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"engineer\",\n",
       "                    \"value\": 79,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(153,141,14)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Learning\",\n",
       "                    \"value\": 79,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(103,68,12)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"hungry\",\n",
       "                    \"value\": 79,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(113,111,53)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Web\",\n",
       "                    \"value\": 76,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(87,123,107)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f00\\u53d1\",\n",
       "                    \"value\": 76,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(45,109,124)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"web\",\n",
       "                    \"value\": 75,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(26,117,105)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"better\",\n",
       "                    \"value\": 74,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(81,73,116)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6280\\u672f\",\n",
       "                    \"value\": 73,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(111,66,49)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"who\",\n",
       "                    \"value\": 72,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(126,152,56)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"man\",\n",
       "                    \"value\": 69,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(60,139,62)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"www\",\n",
       "                    \"value\": 69,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(68,118,39)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5b66\\u4e60\",\n",
       "                    \"value\": 69,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(157,49,138)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nannannannannannan\",\n",
       "                    \"value\": 68,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(62,52,147)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"will\",\n",
       "                    \"value\": 68,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(1,44,84)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"what\",\n",
       "                    \"value\": 67,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(149,18,145)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"no\",\n",
       "                    \"value\": 65,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(47,56,130)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Computer\",\n",
       "                    \"value\": 65,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(84,123,53)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"but\",\n",
       "                    \"value\": 65,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(13,21,157)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"that\",\n",
       "                    \"value\": 65,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(86,137,105)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"up\",\n",
       "                    \"value\": 64,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(119,0,45)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"are\",\n",
       "                    \"value\": 64,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(0,60,75)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"want\",\n",
       "                    \"value\": 63,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(78,143,20)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"your\",\n",
       "                    \"value\": 63,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(86,95,36)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"or\",\n",
       "                    \"value\": 62,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(131,104,143)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"have\",\n",
       "                    \"value\": 61,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(159,6,5)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Software\",\n",
       "                    \"value\": 60,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(54,17,69)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"cheap\",\n",
       "                    \"value\": 60,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(54,5,124)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"github\",\n",
       "                    \"value\": 59,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(44,138,119)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"C++\",\n",
       "                    \"value\": 59,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(38,41,19)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7a0b\\u5e8f\",\n",
       "                    \"value\": 59,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(72,126,17)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"little\",\n",
       "                    \"value\": 58,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(128,14,101)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"an\",\n",
       "                    \"value\": 58,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(26,77,13)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"just\",\n",
       "                    \"value\": 57,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(8,100,63)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"as\",\n",
       "                    \"value\": 55,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(63,3,114)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"python\",\n",
       "                    \"value\": 54,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(119,98,40)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Stay\",\n",
       "                    \"value\": 52,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(111,81,72)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nannannannannannannan\",\n",
       "                    \"value\": 51,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(104,92,139)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"front\",\n",
       "                    \"value\": 51,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(100,18,72)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"about\",\n",
       "                    \"value\": 50,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(76,115,92)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"by\",\n",
       "                    \"value\": 50,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(71,58,95)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u52aa\\u529b\",\n",
       "                    \"value\": 49,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(7,26,123)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Science\",\n",
       "                    \"value\": 49,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(0,50,71)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"go\",\n",
       "                    \"value\": 49,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(36,134,33)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"programming\",\n",
       "                    \"value\": 49,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(71,7,53)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"things\",\n",
       "                    \"value\": 48,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(29,70,49)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u559c\\u6b22\",\n",
       "                    \"value\": 48,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(70,49,111)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"java\",\n",
       "                    \"value\": 48,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(119,127,141)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"End\",\n",
       "                    \"value\": 48,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(17,66,33)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"make\",\n",
       "                    \"value\": 47,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(114,10,24)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"China\",\n",
       "                    \"value\": 47,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(113,136,77)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"than\",\n",
       "                    \"value\": 46,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(159,17,109)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Student\",\n",
       "                    \"value\": 46,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(55,149,96)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"The\",\n",
       "                    \"value\": 45,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(80,131,154)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"work\",\n",
       "                    \"value\": 45,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(88,107,151)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"nannannannannannannannan\",\n",
       "                    \"value\": 45,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(82,111,115)\"\n",
       "                        }\n",
       "                    }\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_714ad27e6df948b9baab60397d64deef.setOption(option_714ad27e6df948b9baab60397d64deef);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.wordcloud.WordCloud at 0x123c4b4e0>"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "swords.extend(['the', 'is', 'and', 'of', 'be', 'to', 'in', 'for', 'from', 'am'])\n",
    "plot_word_cloud(user_data, swords=swords)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
